﻿using System.Collections.Generic;
using System.Data.SqlTypes;
using GeoAPI.Coordinates;
using GeoAPI.CoordinateSystems;
using GeoAPI.CoordinateSystems.Transformations;
using GeoAPI.Geometries;
// Copyright 2008 Newgrove Consultants Limited
//  By John Diss 
//

public interface IServices
{
    ICoordinateFactory CoordinateFactory { get; }
    ICoordinateSystemFactory CoordinateSystemFactory { get; }
    ICoordinateTransformationFactory CoordinateTransformationFactory { get; }
    IGeometryFactory GeometryFactory { get; }
    IGeometryFactory this[string srid] { get; }
    IGeometryFactory this[int? srid] { get; }
    IGeometryFactory this[SqlInt32 srid] { get; }
    IDictionary<TransformCacheKey, IMathTransform> TransformCache { get; }
    IGeometryFactory SridAwareGeometryFactory(int? srid);
}